package cn.edu.scau.cmi.zenglinghong.composite.safe;

import java.util.HashSet;
import java.util.Set;

public abstract class SafeComponent {
	String name;
	//	(1)父节点。
	SafeComponent parent = null;
	
	//	(2)子节点作为其组成部分。
	Set<SafeComponent> children=new HashSet<SafeComponent>();
	
	public SafeComponent(String name, SafeComponent organization) {
		this.name = name;
		parent = organization;
	}
	
	public void SetName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	//	(3)业务功能
	abstract String doSomething();
	
	//	(4)对包含对象的功能
	public SafeComponent getParent() {
		return parent;
	}

	//	(5)对构成部分管理的功能，这些和安全性组合模式不同
	abstract String toString(int depth);
}
